package com.pdh.service;

import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo;
import com.pdh.dao.BillMapper;
import com.pdh.entity.Bill;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import java.util.List;

/**
 * @Author: 彭_德华
 * @Date: 2021-08-30 11:02
 * @Description:
 */
@Service
public class BillService {
    @Autowired
    private BillMapper billMapper;

    /**
     * 查询
     * @param bill
     * @return
     */
    public List<Bill> list(Bill bill){
        return billMapper.select(bill);
    }

    /**
     * 添加Bill数据
     * @param bill
     * @return
     */
    public int add(Bill bill){
        //调用Mapper类的方法，内置的常用方法
        return billMapper.insert(bill);
    }

    /**
     * 根据主键id获取数
     * @param id
     * @return
     */
    public Bill get(Long id) {
        return billMapper.selectByPrimaryKey(id);
    }

    /**
     * 更新单个数据
     * @param bill
     * @return
     */
    public int update(Bill bill){
        return billMapper.updateByPrimaryKey(bill);
    }

    /**
     * 删除数据
     * @param id
     * @return
     */
    public int delete(Long id){
        return billMapper.deleteByPrimaryKey(id);
    }

    /**
     * 分页操作
     * @param bill
     * @param pageNum
     * @param pageSize
     * @return
     */
    public PageInfo<Bill> listPage(Bill bill,int pageNum,int pageSize){
        /**
         * 使用PageHelper进行后端分页，获取到指定的数据。比如
         *      指定bill类中的某一数据
         *      指定页数
         *      指定某一页的数据量
         */
        return PageHelper.startPage(pageNum,pageSize).doSelectPageInfo(() -> {
            billMapper.select(bill);
        });
    }
}
